{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\n/**\n * Feature:\n *  - fixed not need to set width\n *  - support `rowExpandable` to config row expand logic\n *  - add `summary` to support `() => ReactNode`\n *\n * Update:\n *  - `dataIndex` is `array[]` now\n *  - `expandable` wrap all the expand related props\n *\n * Removed:\n *  - expandIconAsCell\n *  - useFixedHeader\n *  - rowRef\n *  - columns[number].onCellClick\n *  - onRowClick\n *  - onRowDoubleClick\n *  - onRowMouseEnter\n *  - onRowMouseLeave\n *  - getBodyWrapper\n *  - bodyStyle\n *\n * Deprecated:\n *  - All expanded props, move into expandable\n */\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN } from \"./constant\";\nimport BodyContext from \"./context/BodyContext\";\nimport ExpandedRowContext from \"./context/ExpandedRowContext\";\nimport ResizeContext from \"./context/ResizeContext\";\nimport StickyContext from \"./context/StickyContext\";\nimport TableContext from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"./utils/expandUtil\";\nimport { getCellFixedInfo } from \"./utils/fixUtil\";\nimport { getExpandableProps } from \"./utils/legacyUtil\";\nimport { getColumnsKey, getPathValue, validateValue } from \"./utils/valueUtil\"; // Used for conditions cache\n\nvar EMPTY_DATA = []; // Used for customize scroll\n\nvar EMPTY_SCROLL_TARGET = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';\nvar MemoTableContent = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return children;\n}, function (prev, next) {\n  if (!shallowEqual(prev.props, next.props)) {\n    return false;\n  } // No additional render when pinged status change.\n  // This is not a bug.\n\n  return prev.pingLeft !== next.pingLeft || prev.pingRight !== next.pingRight;\n});\nfunction Table(tableProps) {\n  var _classNames;\n  var props = _objectSpread({\n    rowKey: 'key',\n    prefixCls: 'rc-table',\n    emptyText: function emptyText() {\n      return 'No Data';\n    }\n  }, tableProps);\n  var prefixCls = props.prefixCls,\n    className = props.className,\n    rowClassName = props.rowClassName,\n    style = props.style,\n    data = props.data,\n    rowKey = props.rowKey,\n    scroll = props.scroll,\n    tableLayout = props.tableLayout,\n    direction = props.direction,\n    title = props.title,\n    footer = props.footer,\n    summary = props.summary,\n    caption = props.caption,\n    id = props.id,\n    showHeader = props.showHeader,\n    components = props.components,\n    emptyText = props.emptyText,\n    onRow = props.onRow,\n    onHeaderRow = props.onHeaderRow,\n    internalHooks = props.internalHooks,\n    transformColumns = props.transformColumns,\n    internalRefs = props.internalRefs,\n    sticky = props.sticky;\n  var mergedData = data || EMPTY_DATA;\n  var hasData = !!mergedData.length; // ===================== Warning ======================\n\n  if (process.env.NODE_ENV !== 'production') {\n    ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n      warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n    });\n    warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n  } // ==================== Customize =====================\n\n  var getComponent = React.useCallback(function (path, defaultComponent) {\n    return getPathValue(components || {}, path) || defaultComponent;\n  }, [components]);\n  var getRowKey = React.useMemo(function () {\n    if (typeof rowKey === 'function') {\n      return rowKey;\n    }\n    return function (record) {\n      var key = record && record[rowKey];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n      }\n      return key;\n    };\n  }, [rowKey]); // ====================== Expand ======================\n\n  var expandableConfig = getExpandableProps(props);\n  var expandIcon = expandableConfig.expandIcon,\n    expandedRowKeys = expandableConfig.expandedRowKeys,\n    defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n    defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n    expandedRowRender = expandableConfig.expandedRowRender,\n    columnTitle = expandableConfig.columnTitle,\n    onExpand = expandableConfig.onExpand,\n    onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n    expandRowByClick = expandableConfig.expandRowByClick,\n    rowExpandable = expandableConfig.rowExpandable,\n    expandIconColumnIndex = expandableConfig.expandIconColumnIndex,\n    expandedRowClassName = expandableConfig.expandedRowClassName,\n    childrenColumnName = expandableConfig.childrenColumnName,\n    indentSize = expandableConfig.indentSize;\n  var mergedExpandIcon = expandIcon || renderExpandIcon;\n  var mergedChildrenColumnName = childrenColumnName || 'children';\n  var expandableType = React.useMemo(function () {\n    if (expandedRowRender) {\n      return 'row';\n    }\n    /* eslint-disable no-underscore-dangle */\n\n    /**\n     * Fix https://github.com/ant-design/ant-design/issues/21154\n     * This is a workaround to not to break current behavior.\n     * We can remove follow code after final release.\n     *\n     * To other developer:\n     *  Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n     */\n\n    if (props.expandable && internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n      return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n    })) {\n      return 'nest';\n    }\n    /* eslint-enable */\n\n    return false;\n  }, [!!expandedRowRender, mergedData]);\n  var _React$useState = React.useState(function () {\n      if (defaultExpandedRowKeys) {\n        return defaultExpandedRowKeys;\n      }\n      if (defaultExpandAllRows) {\n        return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n      }\n      return [];\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerExpandedKeys = _React$useState2[0],\n    setInnerExpandedKeys = _React$useState2[1];\n  var mergedExpandedKeys = React.useMemo(function () {\n    return new Set(expandedRowKeys || innerExpandedKeys || []);\n  }, [expandedRowKeys, innerExpandedKeys]);\n  var onTriggerExpand = React.useCallback(function (record) {\n    var key = getRowKey(record, mergedData.indexOf(record));\n    var newExpandedKeys;\n    var hasKey = mergedExpandedKeys.has(key);\n    if (hasKey) {\n      mergedExpandedKeys.delete(key);\n      newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n    } else {\n      newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n    }\n    setInnerExpandedKeys(newExpandedKeys);\n    if (onExpand) {\n      onExpand(!hasKey, record);\n    }\n    if (onExpandedRowsChange) {\n      onExpandedRowsChange(newExpandedKeys);\n    }\n  }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // Warning if use `expandedRowRender` and nest children in the same time\n\n  if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n    return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n  })) {\n    warning(false, '`expandedRowRender` should not use with nested Table');\n  } // ====================== Column ======================\n\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    componentWidth = _React$useState4[0],\n    setComponentWidth = _React$useState4[1];\n  var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n      expandable: !!expandedRowRender,\n      columnTitle: columnTitle,\n      expandedKeys: mergedExpandedKeys,\n      getRowKey: getRowKey,\n      // https://github.com/ant-design/ant-design/issues/23894\n      onTriggerExpand: onTriggerExpand,\n      expandIcon: mergedExpandIcon,\n      expandIconColumnIndex: expandIconColumnIndex,\n      direction: direction\n    }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n    _useColumns2 = _slicedToArray(_useColumns, 2),\n    columns = _useColumns2[0],\n    flattenColumns = _useColumns2[1];\n  var columnContext = React.useMemo(function () {\n    return {\n      columns: columns,\n      flattenColumns: flattenColumns\n    };\n  }, [columns, flattenColumns]); // ====================== Scroll ======================\n\n  var fullTableRef = React.useRef();\n  var scrollHeaderRef = React.useRef();\n  var scrollBodyRef = React.useRef();\n  var scrollBodyContainerRef = React.useRef();\n  var scrollSummaryRef = React.useRef();\n  var _React$useState5 = React.useState(false),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    pingedLeft = _React$useState6[0],\n    setPingedLeft = _React$useState6[1];\n  var _React$useState7 = React.useState(false),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    pingedRight = _React$useState8[0],\n    setPingedRight = _React$useState8[1];\n  var _useLayoutState = useLayoutState(new Map()),\n    _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n    colsWidths = _useLayoutState2[0],\n    updateColsWidths = _useLayoutState2[1]; // Convert map to number width\n\n  var colsKeys = getColumnsKey(flattenColumns);\n  var pureColWidths = colsKeys.map(function (columnKey) {\n    return colsWidths.get(columnKey);\n  });\n  var colWidths = React.useMemo(function () {\n    return pureColWidths;\n  }, [pureColWidths.join('_')]);\n  var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n  var fixHeader = scroll && validateValue(scroll.y);\n  var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n  var fixColumn = horizonScroll && flattenColumns.some(function (_ref2) {\n    var fixed = _ref2.fixed;\n    return fixed;\n  }); // Sticky\n\n  var stickyRef = React.useRef();\n  var _useSticky = useSticky(sticky, prefixCls),\n    isSticky = _useSticky.isSticky,\n    offsetHeader = _useSticky.offsetHeader,\n    offsetSummary = _useSticky.offsetSummary,\n    offsetScroll = _useSticky.offsetScroll,\n    stickyClassName = _useSticky.stickyClassName,\n    container = _useSticky.container; // Footer (Fix footer must fixed header)\n\n  var summaryNode = summary === null || summary === void 0 ? void 0 : summary(mergedData);\n  var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed; // Scroll\n\n  var scrollXStyle;\n  var scrollYStyle;\n  var scrollTableStyle;\n  if (fixHeader) {\n    scrollYStyle = {\n      overflowY: 'scroll',\n      maxHeight: scroll.y\n    };\n  }\n  if (horizonScroll) {\n    scrollXStyle = {\n      overflowX: 'auto'\n    }; // When no vertical scrollbar, should hide it\n    // https://github.com/ant-design/ant-design/pull/20705\n    // https://github.com/ant-design/ant-design/issues/21879\n\n    if (!fixHeader) {\n      scrollYStyle = {\n        overflowY: 'hidden'\n      };\n    }\n    scrollTableStyle = {\n      width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n      minWidth: '100%'\n    };\n  }\n  var onColumnResize = React.useCallback(function (columnKey, width) {\n    if (isVisible(fullTableRef.current)) {\n      updateColsWidths(function (widths) {\n        if (widths.get(columnKey) !== width) {\n          var newWidths = new Map(widths);\n          newWidths.set(columnKey, width);\n          return newWidths;\n        }\n        return widths;\n      });\n    }\n  }, []);\n  var _useTimeoutLock = useTimeoutLock(null),\n    _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n    setScrollTarget = _useTimeoutLock2[0],\n    getScrollTarget = _useTimeoutLock2[1];\n  function forceScroll(scrollLeft, target) {\n    if (!target) {\n      return;\n    }\n    if (typeof target === 'function') {\n      target(scrollLeft);\n    } else if (target.scrollLeft !== scrollLeft) {\n      target.scrollLeft = scrollLeft; // Delay to force scroll position if not sync\n      // ref: https://github.com/ant-design/ant-design/issues/37179\n\n      if (target.scrollLeft !== scrollLeft) {\n        setTimeout(function () {\n          target.scrollLeft = scrollLeft;\n        }, 0);\n      }\n    }\n  }\n  var onScroll = function onScroll(_ref3) {\n    var currentTarget = _ref3.currentTarget,\n      scrollLeft = _ref3.scrollLeft;\n    var isRTL = direction === 'rtl';\n    var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n    var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n    if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n      var _stickyRef$current;\n      setScrollTarget(compareTarget);\n      forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n      forceScroll(mergedScrollLeft, scrollBodyRef.current);\n      forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n      forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n    }\n    if (currentTarget) {\n      var scrollWidth = currentTarget.scrollWidth,\n        clientWidth = currentTarget.clientWidth; // There is no space to scroll\n\n      if (scrollWidth === clientWidth) {\n        setPingedLeft(false);\n        setPingedRight(false);\n        return;\n      }\n      if (isRTL) {\n        setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n        setPingedRight(-mergedScrollLeft > 0);\n      } else {\n        setPingedLeft(mergedScrollLeft > 0);\n        setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n      }\n    }\n  };\n  var triggerOnScroll = function triggerOnScroll() {\n    if (horizonScroll && scrollBodyRef.current) {\n      onScroll({\n        currentTarget: scrollBodyRef.current\n      });\n    } else {\n      setPingedLeft(false);\n      setPingedRight(false);\n    }\n  };\n  var onFullTableResize = function onFullTableResize(_ref4) {\n    var width = _ref4.width;\n    if (width !== componentWidth) {\n      triggerOnScroll();\n      setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n    }\n  }; // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n\n  var mounted = React.useRef(false);\n  React.useEffect(function () {\n    // onFullTableResize will be trigger once when ResizeObserver is mounted\n    // This will reduce one duplicated triggerOnScroll time\n    if (mounted.current) {\n      triggerOnScroll();\n    }\n  }, [horizonScroll, data, columns.length]);\n  React.useEffect(function () {\n    mounted.current = true;\n  }, []); // ===================== Effects ======================\n\n  var _React$useState9 = React.useState(0),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    scrollbarSize = _React$useState10[0],\n    setScrollbarSize = _React$useState10[1];\n  var _React$useState11 = React.useState(true),\n    _React$useState12 = _slicedToArray(_React$useState11, 2),\n    supportSticky = _React$useState12[0],\n    setSupportSticky = _React$useState12[1]; // Only IE not support, we mark as support first\n\n  React.useEffect(function () {\n    if (scrollBodyRef.current instanceof Element) {\n      setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n    } else {\n      setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n    }\n    setSupportSticky(isStyleSupport('position', 'sticky'));\n  }, []); // ================== INTERNAL HOOKS ==================\n\n  React.useEffect(function () {\n    if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n      internalRefs.body.current = scrollBodyRef.current;\n    }\n  }); // ====================== Render ======================\n\n  var TableComponent = getComponent(['table'], 'table'); // Table layout\n\n  var mergedTableLayout = React.useMemo(function () {\n    if (tableLayout) {\n      return tableLayout;\n    } // https://github.com/ant-design/ant-design/issues/25227\n    // When scroll.x is max-content, no need to fix table layout\n    // it's width should stretch out to fit content\n\n    if (fixColumn) {\n      return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n    }\n    if (fixHeader || isSticky || flattenColumns.some(function (_ref5) {\n      var ellipsis = _ref5.ellipsis;\n      return ellipsis;\n    })) {\n      return 'fixed';\n    }\n    return 'auto';\n  }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n  var groupTableNode; // Header props\n\n  var headerProps = {\n    colWidths: colWidths,\n    columCount: flattenColumns.length,\n    stickyOffsets: stickyOffsets,\n    onHeaderRow: onHeaderRow,\n    fixHeader: fixHeader,\n    scroll: scroll\n  }; // Empty\n\n  var emptyNode = React.useMemo(function () {\n    if (hasData) {\n      return null;\n    }\n    if (typeof emptyText === 'function') {\n      return emptyText();\n    }\n    return emptyText;\n  }, [hasData, emptyText]); // Body\n\n  var bodyTable = /*#__PURE__*/React.createElement(Body, {\n    data: mergedData,\n    measureColumnWidth: fixHeader || horizonScroll || isSticky,\n    expandedKeys: mergedExpandedKeys,\n    rowExpandable: rowExpandable,\n    getRowKey: getRowKey,\n    onRow: onRow,\n    emptyNode: emptyNode,\n    childrenColumnName: mergedChildrenColumnName\n  });\n  var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n    colWidths: flattenColumns.map(function (_ref6) {\n      var width = _ref6.width;\n      return width;\n    }),\n    columns: flattenColumns\n  });\n  var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n    className: \"\".concat(prefixCls, \"-caption\")\n  }, caption) : undefined;\n  var customizeScrollBody = getComponent(['body']);\n  if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n    warning(false, '`components.body` with render props is only work on `scroll.y`.');\n  }\n  var dataProps = pickAttrs(props, {\n    data: true\n  });\n  var ariaProps = pickAttrs(props, {\n    aria: true\n  });\n  if (fixHeader || isSticky) {\n    // >>>>>> Fixed Header\n    var bodyContent;\n    if (typeof customizeScrollBody === 'function') {\n      bodyContent = customizeScrollBody(mergedData, {\n        scrollbarSize: scrollbarSize,\n        ref: scrollBodyRef,\n        onScroll: onScroll\n      });\n      headerProps.colWidths = flattenColumns.map(function (_ref7, index) {\n        var width = _ref7.width;\n        var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;\n        if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n          return colWidth;\n        }\n        warning(false, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n        return 0;\n      });\n    } else {\n      bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n        style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n        onScroll: onScroll,\n        ref: scrollBodyRef,\n        className: classNames(\"\".concat(prefixCls, \"-body\"))\n      }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n        style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n          tableLayout: mergedTableLayout\n        })\n      }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n        stickyOffsets: stickyOffsets,\n        flattenColumns: flattenColumns\n      }, summaryNode)));\n    } // Fixed holder share the props\n\n    var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n      noData: !mergedData.length,\n      maxContentScroll: horizonScroll && scroll.x === 'max-content'\n    }, headerProps), columnContext), {}, {\n      direction: direction,\n      stickyClassName: stickyClassName,\n      onScroll: onScroll\n    });\n    groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyTopOffset: offsetHeader,\n      className: \"\".concat(prefixCls, \"-header\"),\n      ref: scrollHeaderRef\n    }), function (fixedHolderPassProps) {\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n    }), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyBottomOffset: offsetSummary,\n      className: \"\".concat(prefixCls, \"-summary\"),\n      ref: scrollSummaryRef\n    }), function (fixedHolderPassProps) {\n      return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n    }), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n      ref: stickyRef,\n      offsetScroll: offsetScroll,\n      scrollBodyRef: scrollBodyRef,\n      onScroll: onScroll,\n      container: container\n    }));\n  } else {\n    // >>>>>> Unique table\n    groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n      style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n      className: classNames(\"\".concat(prefixCls, \"-content\")),\n      onScroll: onScroll,\n      ref: scrollBodyRef\n    }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n      style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n        tableLayout: mergedTableLayout\n      })\n    }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n      stickyOffsets: stickyOffsets,\n      flattenColumns: flattenColumns\n    }, summaryNode)));\n  }\n  var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n    style: style,\n    id: id,\n    ref: fullTableRef\n  }, dataProps), /*#__PURE__*/React.createElement(MemoTableContent, {\n    pingLeft: pingedLeft,\n    pingRight: pingedRight,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      stickyOffsets: stickyOffsets,\n      mergedExpandedKeys: mergedExpandedKeys\n    })\n  }, title && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-title\")\n  }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollBodyContainerRef,\n    className: \"\".concat(prefixCls, \"-container\")\n  }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-footer\")\n  }, footer(mergedData))));\n  if (horizonScroll) {\n    fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: onFullTableResize\n    }, fullTable);\n  }\n  var TableContextValue = React.useMemo(function () {\n    return {\n      prefixCls: prefixCls,\n      getComponent: getComponent,\n      scrollbarSize: scrollbarSize,\n      direction: direction,\n      fixedInfoList: flattenColumns.map(function (_, colIndex) {\n        return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n      }),\n      isSticky: isSticky\n    };\n  }, [prefixCls, getComponent, scrollbarSize, direction, flattenColumns, stickyOffsets, isSticky]);\n  var BodyContextValue = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, columnContext), {}, {\n      tableLayout: mergedTableLayout,\n      rowClassName: rowClassName,\n      expandedRowClassName: expandedRowClassName,\n      expandIcon: mergedExpandIcon,\n      expandableType: expandableType,\n      expandRowByClick: expandRowByClick,\n      expandedRowRender: expandedRowRender,\n      onTriggerExpand: onTriggerExpand,\n      expandIconColumnIndex: expandIconColumnIndex,\n      indentSize: indentSize,\n      allColumnsFixedLeft: columnContext.flattenColumns.every(function (col) {\n        return col.fixed === 'left';\n      })\n    });\n  }, [columnContext, mergedTableLayout, rowClassName, expandedRowClassName, mergedExpandIcon, expandableType, expandRowByClick, expandedRowRender, onTriggerExpand, expandIconColumnIndex, indentSize]);\n  var ExpandedRowContextValue = React.useMemo(function () {\n    return {\n      componentWidth: componentWidth,\n      fixHeader: fixHeader,\n      fixColumn: fixColumn,\n      horizonScroll: horizonScroll\n    };\n  }, [componentWidth, fixHeader, fixColumn, horizonScroll]);\n  var ResizeContextValue = React.useMemo(function () {\n    return {\n      onColumnResize: onColumnResize\n    };\n  }, [onColumnResize]);\n  return /*#__PURE__*/React.createElement(StickyContext.Provider, {\n    value: supportSticky\n  }, /*#__PURE__*/React.createElement(TableContext.Provider, {\n    value: TableContextValue\n  }, /*#__PURE__*/React.createElement(BodyContext.Provider, {\n    value: BodyContextValue\n  }, /*#__PURE__*/React.createElement(ExpandedRowContext.Provider, {\n    value: ExpandedRowContextValue\n  }, /*#__PURE__*/React.createElement(ResizeContext.Provider, {\n    value: ResizeContextValue\n  }, fullTable)))));\n}\nTable.EXPAND_COLUMN = EXPAND_COLUMN;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = FooterComponents;\nexport default Table;","map":{"version":3,"names":["_defineProperty","_extends","_toConsumableArray","_slicedToArray","_typeof","_objectSpread","classNames","ResizeObserver","isVisible","isStyleSupport","getTargetScrollBarSize","pickAttrs","warning","React","shallowEqual","Body","ColGroup","EXPAND_COLUMN","BodyContext","ExpandedRowContext","ResizeContext","StickyContext","TableContext","FixedHolder","Footer","FooterComponents","Summary","Header","useColumns","useLayoutState","useTimeoutLock","useSticky","useStickyOffsets","Panel","StickyScrollBar","Column","ColumnGroup","findAllChildrenKeys","renderExpandIcon","getCellFixedInfo","getExpandableProps","getColumnsKey","getPathValue","validateValue","EMPTY_DATA","EMPTY_SCROLL_TARGET","INTERNAL_HOOKS","MemoTableContent","memo","_ref","children","prev","next","props","pingLeft","pingRight","Table","tableProps","_classNames","rowKey","prefixCls","emptyText","className","rowClassName","style","data","scroll","tableLayout","direction","title","footer","summary","caption","id","showHeader","components","onRow","onHeaderRow","internalHooks","transformColumns","internalRefs","sticky","mergedData","hasData","length","process","env","NODE_ENV","forEach","name","undefined","concat","getComponent","useCallback","path","defaultComponent","getRowKey","useMemo","record","key","expandableConfig","expandIcon","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","expandedRowRender","columnTitle","onExpand","onExpandedRowsChange","expandRowByClick","rowExpandable","expandIconColumnIndex","expandedRowClassName","childrenColumnName","indentSize","mergedExpandIcon","mergedChildrenColumnName","expandableType","expandable","__PARENT_RENDER_ICON__","some","_React$useState","useState","_React$useState2","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","Set","onTriggerExpand","indexOf","newExpandedKeys","hasKey","has","delete","Array","isArray","_React$useState3","_React$useState4","componentWidth","setComponentWidth","_useColumns","expandedKeys","_useColumns2","columns","flattenColumns","columnContext","fullTableRef","useRef","scrollHeaderRef","scrollBodyRef","scrollBodyContainerRef","scrollSummaryRef","_React$useState5","_React$useState6","pingedLeft","setPingedLeft","_React$useState7","_React$useState8","pingedRight","setPingedRight","_useLayoutState","Map","_useLayoutState2","colsWidths","updateColsWidths","colsKeys","pureColWidths","map","columnKey","get","colWidths","join","stickyOffsets","fixHeader","y","horizonScroll","x","Boolean","fixed","fixColumn","_ref2","stickyRef","_useSticky","isSticky","offsetHeader","offsetSummary","offsetScroll","stickyClassName","container","summaryNode","fixFooter","isValidElement","type","scrollXStyle","scrollYStyle","scrollTableStyle","overflowY","maxHeight","overflowX","width","minWidth","onColumnResize","current","widths","newWidths","set","_useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","scrollLeft","target","setTimeout","onScroll","_ref3","currentTarget","isRTL","mergedScrollLeft","compareTarget","_stickyRef$current","setScrollLeft","scrollWidth","clientWidth","triggerOnScroll","onFullTableResize","_ref4","offsetWidth","mounted","useEffect","_React$useState9","_React$useState10","scrollbarSize","setScrollbarSize","_React$useState11","_React$useState12","supportSticky","setSupportSticky","Element","body","TableComponent","mergedTableLayout","_ref5","ellipsis","groupTableNode","headerProps","columCount","emptyNode","bodyTable","createElement","measureColumnWidth","bodyColGroup","_ref6","captionElement","customizeScrollBody","dataProps","ariaProps","aria","bodyContent","ref","_ref7","index","colWidth","Number","isNaN","fixedHolderProps","noData","maxContentScroll","Fragment","stickyTopOffset","fixedHolderPassProps","stickyBottomOffset","fullTable","onResize","TableContextValue","fixedInfoList","_","colIndex","BodyContextValue","allColumnsFixedLeft","every","col","ExpandedRowContextValue","ResizeContextValue","Provider","value"],"sources":["/Users/poppie/Desktop/development/messenger/app/frontend/node_modules/rc-table/es/Table.js"],"sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\n/**\n * Feature:\n *  - fixed not need to set width\n *  - support `rowExpandable` to config row expand logic\n *  - add `summary` to support `() => ReactNode`\n *\n * Update:\n *  - `dataIndex` is `array[]` now\n *  - `expandable` wrap all the expand related props\n *\n * Removed:\n *  - expandIconAsCell\n *  - useFixedHeader\n *  - rowRef\n *  - columns[number].onCellClick\n *  - onRowClick\n *  - onRowDoubleClick\n *  - onRowMouseEnter\n *  - onRowMouseLeave\n *  - getBodyWrapper\n *  - bodyStyle\n *\n * Deprecated:\n *  - All expanded props, move into expandable\n */\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN } from \"./constant\";\nimport BodyContext from \"./context/BodyContext\";\nimport ExpandedRowContext from \"./context/ExpandedRowContext\";\nimport ResizeContext from \"./context/ResizeContext\";\nimport StickyContext from \"./context/StickyContext\";\nimport TableContext from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"./utils/expandUtil\";\nimport { getCellFixedInfo } from \"./utils/fixUtil\";\nimport { getExpandableProps } from \"./utils/legacyUtil\";\nimport { getColumnsKey, getPathValue, validateValue } from \"./utils/valueUtil\"; // Used for conditions cache\n\nvar EMPTY_DATA = []; // Used for customize scroll\n\nvar EMPTY_SCROLL_TARGET = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';\nvar MemoTableContent = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return children;\n}, function (prev, next) {\n  if (!shallowEqual(prev.props, next.props)) {\n    return false;\n  } // No additional render when pinged status change.\n  // This is not a bug.\n\n\n  return prev.pingLeft !== next.pingLeft || prev.pingRight !== next.pingRight;\n});\n\nfunction Table(tableProps) {\n  var _classNames;\n\n  var props = _objectSpread({\n    rowKey: 'key',\n    prefixCls: 'rc-table',\n    emptyText: function emptyText() {\n      return 'No Data';\n    }\n  }, tableProps);\n\n  var prefixCls = props.prefixCls,\n      className = props.className,\n      rowClassName = props.rowClassName,\n      style = props.style,\n      data = props.data,\n      rowKey = props.rowKey,\n      scroll = props.scroll,\n      tableLayout = props.tableLayout,\n      direction = props.direction,\n      title = props.title,\n      footer = props.footer,\n      summary = props.summary,\n      caption = props.caption,\n      id = props.id,\n      showHeader = props.showHeader,\n      components = props.components,\n      emptyText = props.emptyText,\n      onRow = props.onRow,\n      onHeaderRow = props.onHeaderRow,\n      internalHooks = props.internalHooks,\n      transformColumns = props.transformColumns,\n      internalRefs = props.internalRefs,\n      sticky = props.sticky;\n  var mergedData = data || EMPTY_DATA;\n  var hasData = !!mergedData.length; // ===================== Warning ======================\n\n  if (process.env.NODE_ENV !== 'production') {\n    ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n      warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n    });\n    warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n  } // ==================== Customize =====================\n\n\n  var getComponent = React.useCallback(function (path, defaultComponent) {\n    return getPathValue(components || {}, path) || defaultComponent;\n  }, [components]);\n  var getRowKey = React.useMemo(function () {\n    if (typeof rowKey === 'function') {\n      return rowKey;\n    }\n\n    return function (record) {\n      var key = record && record[rowKey];\n\n      if (process.env.NODE_ENV !== 'production') {\n        warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n      }\n\n      return key;\n    };\n  }, [rowKey]); // ====================== Expand ======================\n\n  var expandableConfig = getExpandableProps(props);\n  var expandIcon = expandableConfig.expandIcon,\n      expandedRowKeys = expandableConfig.expandedRowKeys,\n      defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n      defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n      expandedRowRender = expandableConfig.expandedRowRender,\n      columnTitle = expandableConfig.columnTitle,\n      onExpand = expandableConfig.onExpand,\n      onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n      expandRowByClick = expandableConfig.expandRowByClick,\n      rowExpandable = expandableConfig.rowExpandable,\n      expandIconColumnIndex = expandableConfig.expandIconColumnIndex,\n      expandedRowClassName = expandableConfig.expandedRowClassName,\n      childrenColumnName = expandableConfig.childrenColumnName,\n      indentSize = expandableConfig.indentSize;\n  var mergedExpandIcon = expandIcon || renderExpandIcon;\n  var mergedChildrenColumnName = childrenColumnName || 'children';\n  var expandableType = React.useMemo(function () {\n    if (expandedRowRender) {\n      return 'row';\n    }\n    /* eslint-disable no-underscore-dangle */\n\n    /**\n     * Fix https://github.com/ant-design/ant-design/issues/21154\n     * This is a workaround to not to break current behavior.\n     * We can remove follow code after final release.\n     *\n     * To other developer:\n     *  Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n     */\n\n\n    if (props.expandable && internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n      return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n    })) {\n      return 'nest';\n    }\n    /* eslint-enable */\n\n\n    return false;\n  }, [!!expandedRowRender, mergedData]);\n\n  var _React$useState = React.useState(function () {\n    if (defaultExpandedRowKeys) {\n      return defaultExpandedRowKeys;\n    }\n\n    if (defaultExpandAllRows) {\n      return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n    }\n\n    return [];\n  }),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      innerExpandedKeys = _React$useState2[0],\n      setInnerExpandedKeys = _React$useState2[1];\n\n  var mergedExpandedKeys = React.useMemo(function () {\n    return new Set(expandedRowKeys || innerExpandedKeys || []);\n  }, [expandedRowKeys, innerExpandedKeys]);\n  var onTriggerExpand = React.useCallback(function (record) {\n    var key = getRowKey(record, mergedData.indexOf(record));\n    var newExpandedKeys;\n    var hasKey = mergedExpandedKeys.has(key);\n\n    if (hasKey) {\n      mergedExpandedKeys.delete(key);\n      newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n    } else {\n      newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n    }\n\n    setInnerExpandedKeys(newExpandedKeys);\n\n    if (onExpand) {\n      onExpand(!hasKey, record);\n    }\n\n    if (onExpandedRowsChange) {\n      onExpandedRowsChange(newExpandedKeys);\n    }\n  }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // Warning if use `expandedRowRender` and nest children in the same time\n\n  if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n    return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n  })) {\n    warning(false, '`expandedRowRender` should not use with nested Table');\n  } // ====================== Column ======================\n\n\n  var _React$useState3 = React.useState(0),\n      _React$useState4 = _slicedToArray(_React$useState3, 2),\n      componentWidth = _React$useState4[0],\n      setComponentWidth = _React$useState4[1];\n\n  var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n    expandable: !!expandedRowRender,\n    columnTitle: columnTitle,\n    expandedKeys: mergedExpandedKeys,\n    getRowKey: getRowKey,\n    // https://github.com/ant-design/ant-design/issues/23894\n    onTriggerExpand: onTriggerExpand,\n    expandIcon: mergedExpandIcon,\n    expandIconColumnIndex: expandIconColumnIndex,\n    direction: direction\n  }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n      _useColumns2 = _slicedToArray(_useColumns, 2),\n      columns = _useColumns2[0],\n      flattenColumns = _useColumns2[1];\n\n  var columnContext = React.useMemo(function () {\n    return {\n      columns: columns,\n      flattenColumns: flattenColumns\n    };\n  }, [columns, flattenColumns]); // ====================== Scroll ======================\n\n  var fullTableRef = React.useRef();\n  var scrollHeaderRef = React.useRef();\n  var scrollBodyRef = React.useRef();\n  var scrollBodyContainerRef = React.useRef();\n  var scrollSummaryRef = React.useRef();\n\n  var _React$useState5 = React.useState(false),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      pingedLeft = _React$useState6[0],\n      setPingedLeft = _React$useState6[1];\n\n  var _React$useState7 = React.useState(false),\n      _React$useState8 = _slicedToArray(_React$useState7, 2),\n      pingedRight = _React$useState8[0],\n      setPingedRight = _React$useState8[1];\n\n  var _useLayoutState = useLayoutState(new Map()),\n      _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n      colsWidths = _useLayoutState2[0],\n      updateColsWidths = _useLayoutState2[1]; // Convert map to number width\n\n\n  var colsKeys = getColumnsKey(flattenColumns);\n  var pureColWidths = colsKeys.map(function (columnKey) {\n    return colsWidths.get(columnKey);\n  });\n  var colWidths = React.useMemo(function () {\n    return pureColWidths;\n  }, [pureColWidths.join('_')]);\n  var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n  var fixHeader = scroll && validateValue(scroll.y);\n  var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n  var fixColumn = horizonScroll && flattenColumns.some(function (_ref2) {\n    var fixed = _ref2.fixed;\n    return fixed;\n  }); // Sticky\n\n  var stickyRef = React.useRef();\n\n  var _useSticky = useSticky(sticky, prefixCls),\n      isSticky = _useSticky.isSticky,\n      offsetHeader = _useSticky.offsetHeader,\n      offsetSummary = _useSticky.offsetSummary,\n      offsetScroll = _useSticky.offsetScroll,\n      stickyClassName = _useSticky.stickyClassName,\n      container = _useSticky.container; // Footer (Fix footer must fixed header)\n\n\n  var summaryNode = summary === null || summary === void 0 ? void 0 : summary(mergedData);\n  var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed; // Scroll\n\n  var scrollXStyle;\n  var scrollYStyle;\n  var scrollTableStyle;\n\n  if (fixHeader) {\n    scrollYStyle = {\n      overflowY: 'scroll',\n      maxHeight: scroll.y\n    };\n  }\n\n  if (horizonScroll) {\n    scrollXStyle = {\n      overflowX: 'auto'\n    }; // When no vertical scrollbar, should hide it\n    // https://github.com/ant-design/ant-design/pull/20705\n    // https://github.com/ant-design/ant-design/issues/21879\n\n    if (!fixHeader) {\n      scrollYStyle = {\n        overflowY: 'hidden'\n      };\n    }\n\n    scrollTableStyle = {\n      width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n      minWidth: '100%'\n    };\n  }\n\n  var onColumnResize = React.useCallback(function (columnKey, width) {\n    if (isVisible(fullTableRef.current)) {\n      updateColsWidths(function (widths) {\n        if (widths.get(columnKey) !== width) {\n          var newWidths = new Map(widths);\n          newWidths.set(columnKey, width);\n          return newWidths;\n        }\n\n        return widths;\n      });\n    }\n  }, []);\n\n  var _useTimeoutLock = useTimeoutLock(null),\n      _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n      setScrollTarget = _useTimeoutLock2[0],\n      getScrollTarget = _useTimeoutLock2[1];\n\n  function forceScroll(scrollLeft, target) {\n    if (!target) {\n      return;\n    }\n\n    if (typeof target === 'function') {\n      target(scrollLeft);\n    } else if (target.scrollLeft !== scrollLeft) {\n      target.scrollLeft = scrollLeft; // Delay to force scroll position if not sync\n      // ref: https://github.com/ant-design/ant-design/issues/37179\n\n      if (target.scrollLeft !== scrollLeft) {\n        setTimeout(function () {\n          target.scrollLeft = scrollLeft;\n        }, 0);\n      }\n    }\n  }\n\n  var onScroll = function onScroll(_ref3) {\n    var currentTarget = _ref3.currentTarget,\n        scrollLeft = _ref3.scrollLeft;\n    var isRTL = direction === 'rtl';\n    var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n    var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n\n    if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n      var _stickyRef$current;\n\n      setScrollTarget(compareTarget);\n      forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n      forceScroll(mergedScrollLeft, scrollBodyRef.current);\n      forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n      forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n    }\n\n    if (currentTarget) {\n      var scrollWidth = currentTarget.scrollWidth,\n          clientWidth = currentTarget.clientWidth; // There is no space to scroll\n\n      if (scrollWidth === clientWidth) {\n        setPingedLeft(false);\n        setPingedRight(false);\n        return;\n      }\n\n      if (isRTL) {\n        setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n        setPingedRight(-mergedScrollLeft > 0);\n      } else {\n        setPingedLeft(mergedScrollLeft > 0);\n        setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n      }\n    }\n  };\n\n  var triggerOnScroll = function triggerOnScroll() {\n    if (horizonScroll && scrollBodyRef.current) {\n      onScroll({\n        currentTarget: scrollBodyRef.current\n      });\n    } else {\n      setPingedLeft(false);\n      setPingedRight(false);\n    }\n  };\n\n  var onFullTableResize = function onFullTableResize(_ref4) {\n    var width = _ref4.width;\n\n    if (width !== componentWidth) {\n      triggerOnScroll();\n      setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n    }\n  }; // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n\n\n  var mounted = React.useRef(false);\n  React.useEffect(function () {\n    // onFullTableResize will be trigger once when ResizeObserver is mounted\n    // This will reduce one duplicated triggerOnScroll time\n    if (mounted.current) {\n      triggerOnScroll();\n    }\n  }, [horizonScroll, data, columns.length]);\n  React.useEffect(function () {\n    mounted.current = true;\n  }, []); // ===================== Effects ======================\n\n  var _React$useState9 = React.useState(0),\n      _React$useState10 = _slicedToArray(_React$useState9, 2),\n      scrollbarSize = _React$useState10[0],\n      setScrollbarSize = _React$useState10[1];\n\n  var _React$useState11 = React.useState(true),\n      _React$useState12 = _slicedToArray(_React$useState11, 2),\n      supportSticky = _React$useState12[0],\n      setSupportSticky = _React$useState12[1]; // Only IE not support, we mark as support first\n\n\n  React.useEffect(function () {\n    if (scrollBodyRef.current instanceof Element) {\n      setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n    } else {\n      setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n    }\n\n    setSupportSticky(isStyleSupport('position', 'sticky'));\n  }, []); // ================== INTERNAL HOOKS ==================\n\n  React.useEffect(function () {\n    if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n      internalRefs.body.current = scrollBodyRef.current;\n    }\n  }); // ====================== Render ======================\n\n  var TableComponent = getComponent(['table'], 'table'); // Table layout\n\n  var mergedTableLayout = React.useMemo(function () {\n    if (tableLayout) {\n      return tableLayout;\n    } // https://github.com/ant-design/ant-design/issues/25227\n    // When scroll.x is max-content, no need to fix table layout\n    // it's width should stretch out to fit content\n\n\n    if (fixColumn) {\n      return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n    }\n\n    if (fixHeader || isSticky || flattenColumns.some(function (_ref5) {\n      var ellipsis = _ref5.ellipsis;\n      return ellipsis;\n    })) {\n      return 'fixed';\n    }\n\n    return 'auto';\n  }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n  var groupTableNode; // Header props\n\n  var headerProps = {\n    colWidths: colWidths,\n    columCount: flattenColumns.length,\n    stickyOffsets: stickyOffsets,\n    onHeaderRow: onHeaderRow,\n    fixHeader: fixHeader,\n    scroll: scroll\n  }; // Empty\n\n  var emptyNode = React.useMemo(function () {\n    if (hasData) {\n      return null;\n    }\n\n    if (typeof emptyText === 'function') {\n      return emptyText();\n    }\n\n    return emptyText;\n  }, [hasData, emptyText]); // Body\n\n  var bodyTable = /*#__PURE__*/React.createElement(Body, {\n    data: mergedData,\n    measureColumnWidth: fixHeader || horizonScroll || isSticky,\n    expandedKeys: mergedExpandedKeys,\n    rowExpandable: rowExpandable,\n    getRowKey: getRowKey,\n    onRow: onRow,\n    emptyNode: emptyNode,\n    childrenColumnName: mergedChildrenColumnName\n  });\n  var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n    colWidths: flattenColumns.map(function (_ref6) {\n      var width = _ref6.width;\n      return width;\n    }),\n    columns: flattenColumns\n  });\n  var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n    className: \"\".concat(prefixCls, \"-caption\")\n  }, caption) : undefined;\n  var customizeScrollBody = getComponent(['body']);\n\n  if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n    warning(false, '`components.body` with render props is only work on `scroll.y`.');\n  }\n\n  var dataProps = pickAttrs(props, {\n    data: true\n  });\n  var ariaProps = pickAttrs(props, {\n    aria: true\n  });\n\n  if (fixHeader || isSticky) {\n    // >>>>>> Fixed Header\n    var bodyContent;\n\n    if (typeof customizeScrollBody === 'function') {\n      bodyContent = customizeScrollBody(mergedData, {\n        scrollbarSize: scrollbarSize,\n        ref: scrollBodyRef,\n        onScroll: onScroll\n      });\n      headerProps.colWidths = flattenColumns.map(function (_ref7, index) {\n        var width = _ref7.width;\n        var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;\n\n        if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n          return colWidth;\n        }\n\n        warning(false, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n        return 0;\n      });\n    } else {\n      bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n        style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n        onScroll: onScroll,\n        ref: scrollBodyRef,\n        className: classNames(\"\".concat(prefixCls, \"-body\"))\n      }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n        style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n          tableLayout: mergedTableLayout\n        })\n      }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n        stickyOffsets: stickyOffsets,\n        flattenColumns: flattenColumns\n      }, summaryNode)));\n    } // Fixed holder share the props\n\n\n    var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n      noData: !mergedData.length,\n      maxContentScroll: horizonScroll && scroll.x === 'max-content'\n    }, headerProps), columnContext), {}, {\n      direction: direction,\n      stickyClassName: stickyClassName,\n      onScroll: onScroll\n    });\n\n    groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyTopOffset: offsetHeader,\n      className: \"\".concat(prefixCls, \"-header\"),\n      ref: scrollHeaderRef\n    }), function (fixedHolderPassProps) {\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n    }), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyBottomOffset: offsetSummary,\n      className: \"\".concat(prefixCls, \"-summary\"),\n      ref: scrollSummaryRef\n    }), function (fixedHolderPassProps) {\n      return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n    }), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n      ref: stickyRef,\n      offsetScroll: offsetScroll,\n      scrollBodyRef: scrollBodyRef,\n      onScroll: onScroll,\n      container: container\n    }));\n  } else {\n    // >>>>>> Unique table\n    groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n      style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n      className: classNames(\"\".concat(prefixCls, \"-content\")),\n      onScroll: onScroll,\n      ref: scrollBodyRef\n    }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n      style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n        tableLayout: mergedTableLayout\n      })\n    }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n      stickyOffsets: stickyOffsets,\n      flattenColumns: flattenColumns\n    }, summaryNode)));\n  }\n\n  var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n    style: style,\n    id: id,\n    ref: fullTableRef\n  }, dataProps), /*#__PURE__*/React.createElement(MemoTableContent, {\n    pingLeft: pingedLeft,\n    pingRight: pingedRight,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      stickyOffsets: stickyOffsets,\n      mergedExpandedKeys: mergedExpandedKeys\n    })\n  }, title && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-title\")\n  }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollBodyContainerRef,\n    className: \"\".concat(prefixCls, \"-container\")\n  }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-footer\")\n  }, footer(mergedData))));\n\n  if (horizonScroll) {\n    fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: onFullTableResize\n    }, fullTable);\n  }\n\n  var TableContextValue = React.useMemo(function () {\n    return {\n      prefixCls: prefixCls,\n      getComponent: getComponent,\n      scrollbarSize: scrollbarSize,\n      direction: direction,\n      fixedInfoList: flattenColumns.map(function (_, colIndex) {\n        return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n      }),\n      isSticky: isSticky\n    };\n  }, [prefixCls, getComponent, scrollbarSize, direction, flattenColumns, stickyOffsets, isSticky]);\n  var BodyContextValue = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, columnContext), {}, {\n      tableLayout: mergedTableLayout,\n      rowClassName: rowClassName,\n      expandedRowClassName: expandedRowClassName,\n      expandIcon: mergedExpandIcon,\n      expandableType: expandableType,\n      expandRowByClick: expandRowByClick,\n      expandedRowRender: expandedRowRender,\n      onTriggerExpand: onTriggerExpand,\n      expandIconColumnIndex: expandIconColumnIndex,\n      indentSize: indentSize,\n      allColumnsFixedLeft: columnContext.flattenColumns.every(function (col) {\n        return col.fixed === 'left';\n      })\n    });\n  }, [columnContext, mergedTableLayout, rowClassName, expandedRowClassName, mergedExpandIcon, expandableType, expandRowByClick, expandedRowRender, onTriggerExpand, expandIconColumnIndex, indentSize]);\n  var ExpandedRowContextValue = React.useMemo(function () {\n    return {\n      componentWidth: componentWidth,\n      fixHeader: fixHeader,\n      fixColumn: fixColumn,\n      horizonScroll: horizonScroll\n    };\n  }, [componentWidth, fixHeader, fixColumn, horizonScroll]);\n  var ResizeContextValue = React.useMemo(function () {\n    return {\n      onColumnResize: onColumnResize\n    };\n  }, [onColumnResize]);\n  return /*#__PURE__*/React.createElement(StickyContext.Provider, {\n    value: supportSticky\n  }, /*#__PURE__*/React.createElement(TableContext.Provider, {\n    value: TableContextValue\n  }, /*#__PURE__*/React.createElement(BodyContext.Provider, {\n    value: BodyContextValue\n  }, /*#__PURE__*/React.createElement(ExpandedRowContext.Provider, {\n    value: ExpandedRowContextValue\n  }, /*#__PURE__*/React.createElement(ResizeContext.Provider, {\n    value: ResizeContextValue\n  }, fullTable)))));\n}\n\nTable.EXPAND_COLUMN = EXPAND_COLUMN;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = FooterComponents;\nexport default Table;"],"mappings":"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"},"metadata":{},"sourceType":"module"}